package com.sld.concrete.register.service;

import java.util.List;

import com.sld.concrete.algorithm.vo.WorkDataInfo;
import com.sld.concrete.register.domain.InfoConcreteRegister;

/**
 * 混凝土信息登记Service接口
 * 
 * @author topviewers
 * @date 2022-04-23
 */
public interface IInfoConcreteRegisterService 
{
    /**
     * 查询混凝土信息登记
     * 
     * @param registerId 混凝土信息登记主键
     * @return 混凝土信息登记
     */
    public InfoConcreteRegister selectInfoConcreteRegisterByRegisterId(Long registerId);

    /**
     * 查询混凝土信息登记列表
     * 
     * @param infoConcreteRegister 混凝土信息登记
     * @return 混凝土信息登记集合
     */
    public List<InfoConcreteRegister> selectInfoConcreteRegisterList(InfoConcreteRegister infoConcreteRegister);

    /**
     * 新增混凝土信息登记
     * 
     * @param infoConcreteRegister 混凝土信息登记
     * @return 结果
     */
    public int insertInfoConcreteRegister(InfoConcreteRegister infoConcreteRegister) throws Exception;

    /**
     * 修改混凝土信息登记
     * 
     * @param infoConcreteRegister 混凝土信息登记
     * @return 结果
     */
    public int updateInfoConcreteRegister(InfoConcreteRegister infoConcreteRegister);

    /**
     * 批量删除混凝土信息登记
     * 
     * @param registerIds 需要删除的混凝土信息登记主键集合
     * @return 结果
     */
    public int deleteInfoConcreteRegisterByRegisterIds(String registerIds);

    /**
     * 删除混凝土信息登记信息
     * 
     * @param registerId 混凝土信息登记主键
     * @return 结果
     */
    public int deleteInfoConcreteRegisterByRegisterId(Long registerId);

    /**
     * 查询所有没有被绑定的工作信息，sequence,
     * todo 肯定需要考虑权限的
     * @return
     * @param plateNo
     * @param startTime
     * @param endTime
     */
    List<WorkDataInfo> queryUnbindSequence(WorkDataInfo workData);

    int saveSequenceRegisterInfo(String seqId, String plateNo, String concreteType,
                                 int concreteVolume, String companyName, String mixingStation,
                                 String machineUnit, int slumpStart, int slumpEnd) throws Exception;
}
